package com.yuan.algorithms.arithmetic_2;

/**
 * @author YouYuan <br>
 *         E-mail:1265161633@qq.com <br>
 *         创建时间：2015年12月3日 下午5:17:24 <br>
 *         说明:两元一瓶酒，四个瓶盖可以换一瓶酒，两个酒瓶可以换一瓶酒，共有10元钱，问最多可以喝多少瓶酒？ 
 *         money:0 bottle:1 cap:3 Sum=15 最终剩余1个瓶3个盖，可以贷款3个盖1个瓶再换得5瓶酒，并且刚好还上贷款。
 */
public class 能喝多少瓶啤酒 {

	public static void main(String[] args) {
		int money = 10;// 钱
		int bottle = 0;// 瓶子数
		int cap = 0;// 盖子数
		int sum = 0;// 喝酒的总数
		// 用钱喝酒
		int tm = money / 2;
		sum += tm;
		bottle += tm;
		money %= 2;
		cap += tm;

		while (bottle >= 2 || cap >= 4) {
			// 用瓶子换酒
			int tb = bottle / 2;
			bottle %= 2;
			sum += tb;
			bottle += tb;
			cap += tb;
			// 用盖子换酒
			int tc = cap / 4;
			cap %= 4;
			sum += tc;
			bottle += tc;
			cap += tc;
		}
		System.out.println("money:" + money + " bottle:" + bottle + " cap:" + cap);
		System.out.println("Sum=" + sum);
	}

}
